home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-01-11 | 2.5 KB | 52 lines | [TEXT/pdos] |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
- Apple IIgs
- #98: Aren't Windows a Pane?
-
- Written by: Dave Lyons January 1991
-
- This Technical Note describes things in the Window Manager that we have to tell
- you even though we shouldn't.
- _____________________________________________________________________________
-
-
- A Warning About Window Color Table Handles And Resources
-
- All versions of the Window Manager that support window color tables specified as
- handles or resources, up to and including System Software 5.0.4, work unreliably
- when a standard window's color table is supplied by handle or resource ID.
-
- The problem is not immediately obvious; only one bit of memory is accidentally
- cleared, but the address is unpredictable in advance. (When unlocking the color
- table handle, the standard window definition procedure attempts to unlock the
- handle manually by turning off bit 15 of word offset +4 in the master pointer
- record. But it gets the high and low words of the handle reversed and usually
- turns off bit 15 of the word at offset $80E4 or $80E5 in some bank of RAM
- determined by the low byte of the handle.)
-
- The solution is to avoid supplying color table handles or resource IDs to the
- Window Manager. Supply color table pointers instead. You can get a color table
- pointer from a color table resource ID by calling LoadResource on the color
- table resource, locking the handle and dereferencing it. Memory is less
- fragmented if color table resources used in this way are marked as attrFixed.
-
- One method is to put the window color table pointer into the window template
- before calling NewWindow2. If you are creating the window from an rWindParam1
- resource, you need to use LoadResource to get the template into RAM so that you
- can stuff the color table pointer into the template. (Be sure to change the
- moreFlags field to indicate that the color table is a pointer, if the template
- indicates it's a resource.) After you create the window with NewWindow2 (by
- handle), use ReleaseResource to release the rWindParam1 resource.
-
- Another method is to create the window as invisible and pass the window color
- table pointer to SetFrameColor before calling ShowWindow.
-
-
- Further Reference
- _____________________________________________________________________________
- o Apple IIgs Toolbox Reference, Volumes 2-3
-
-